3 research outputs found

    DrAST - An attribute debugger for JastAdd

    Get PDF
    Here we present a solution for debugging compilers that use abstract-syntax trees as their internal structure. The solution focuses on capturing one specific state of the compilation process, and should not be confused with the more known step-by-step debugging. The goal is to visualize the current state of the abstract-syntax tree and present its data to the user in an intuitive and interactive way. We believe that deeper understanding of an abstract-syntax tree, and bugs in its structure, can be achieved by visualization of the tree. Few such debuggers exist today however, but with this master thesis we aim to fill this gap. The main feature of the developed tool DrAST is the ability to visualize the abstract-syntax tree. It is also possible to filter the tree, so that only nodes of interest are visualized, while the rest are gathered in what we call clusters. Further, DrAST can display attributes, draw references between nodes, calculate parameterized attributes and is built for further extension. DrAST mainly debugs compilers created in the attribute-grammar-based system JastAdd. By the use of Java reflection and annotations from the JastAdd system, the debugger is able to extract the abstract-syntax tree from a compiler without knowing the specific grammar. In short, DrAST provides a new solution in compiler debugging which can be of use for both students and professionals

    OAuth versioner 1.0a och 2.0 - En säkerhetsjämförelse

    Get PDF
    In this work two versions of Oauth have been analyzed, the protocol OAuth 1.0a and the newer framework OAuth 2.0. A higher version number is often considered a good thing, but OAuth 2.0 has encountered much criticism. It has been criticised of not being safe enough while OAuth 1.0a was criticised of being very complicated protocol to implement, which has stopped it from growing as expected. The following problem is solved with OAuth: a resource owner has resources on a server. A third party would like to use some of these resources in the resource owner's name. OAuth solves this by letting the resource owner authenticates at the server and agree that the third party is authorized to access the resources that the resource owner possesses. The result of this work led to an implementation of an OAuth client to LinkedIn on PMCG Scandinavia AB's project portal. The result is an OAuth 2.0 solution that gives LinkedIn users the ability to log in to the project portal through LinkedIn. LinkedIns OAuth 2.0 solution was considered to be sufficiently safe and much easier to implement and maintain

    DrAST: an inspection tool for attributed syntax trees (tool demo)

    No full text
    When implementing a language by means of attribute grammars, it is often useful to study example programs and their attributed trees, to understand the compiler structure, or for debugging. DrAST is a tool that allows interactive inspection of attributed trees. It is interfaced to the JastAdd metacompiler, and supports all JastAdd attribution mechanisms, such as demand evaluation, reference attributes (graph edges), and nonterminal attributes. A challenge in visualizing attributed trees is that they are large, even for small programs. To allow the user to focus on the aspects of interest, DrAST supports the interactive definition of filtered versions of the tree through a domain-specific language which allows conditional filtering based on the attributes themselves. We have used DrAST on a variety of language implementations, from tiny compilers used in teaching to a complete Java compiler
    corecore